/*
 *  Copyright (c) 2009 Baturu.COM
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */

package com.baturu.oss.entities.posts;

import com.baturu.oss.entities.categories.OpenCategory;
import com.baturu.oss.entities.comments.OpenComment;
import com.baturu.oss.entities.users.OpenUser;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

/**
 *
 * @author <a href="mailto:javafuns@baturu.com">javafuns</a>
 */
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class OpenPost implements Serializable {
    private static final long serialVersionUID = -5332201537548447061L;

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    @Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
    private String id;

    @Persistent
    private OpenUser postAuthor;

    @Persistent
    private Date postCreateDate;
    @Persistent
    private String title;
    @Persistent
    private String postContent;
    @Persistent
    private OpenCategory postCategory;
    @Persistent
    private Integer postStatus;
    @Persistent
    private Long postCommentCount;

    @Persistent
    private List<OpenComment> comments = new ArrayList<OpenComment>();

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public OpenUser getPostAuthor() {
        return postAuthor;
    }

    public void setPostAuthor(OpenUser postAuthor) {
        this.postAuthor = postAuthor;
    }

    public OpenCategory getPostCategory() {
        return postCategory;
    }

    public void setPostCategory(OpenCategory postCategory) {
        this.postCategory = postCategory;
    }

    public Long getPostCommentCount() {
        return postCommentCount;
    }

    public void setPostCommentCount(Long postCommentCount) {
        this.postCommentCount = postCommentCount;
    }

    public String getPostContent() {
        return postContent;
    }

    public void setPostContent(String postContent) {
        this.postContent = postContent;
    }

    public Date getPostCreateDate() {
        return postCreateDate;
    }

    public void setPostCreateDate(Date postCreateDate) {
        this.postCreateDate = postCreateDate;
    }

    public Integer getPostStatus() {
        return postStatus;
    }

    public void setPostStatus(Integer postStatus) {
        this.postStatus = postStatus;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<OpenComment> getComments() {
        return comments;
    }

    public void setComments(List<OpenComment> comments) {
        this.comments = comments;
    }

}
